//
// Created by jiangpenghui on 2023/5/17.
//

#ifndef CMAKECXX_ARR_CONST_H
#define CMAKECXX_ARR_CONST_H

#include <iostream>
#include <stdio.h>

extern int const *const_q;

extern const int *int_q;


class Framis {
    enum {
        sz = 10
    };
    char c[sz];
    static unsigned char pool[];
    static bool alloc_map[];
public:
    enum {
        psize = 100
    };

    Framis() {
        using namespace std;
        cout << "generate Framis" << endl;
    }

    ~Framis() {
        using namespace std;
        cout << "destroy Framis" << endl;
    }

    void *operator new(size_t) noexcept(false);

    void operator delete(void *);
};

void test_local_framis();

class using_b {
public:
    void f(char) {
        printf_s("In B::f()\n");
    }

    void g(char) {
        printf_s("In B::g()\n");
    }
};

class using_d : using_b {

public:
    using using_b::g;
};





union RecordType    // Declare a simple union type
{
    char   ch;
    int    i;
    long   l;
    float  f;
    double d;
    int *int_ptr;
};

#endif //CMAKECXX_ARR_CONST_H
